The term "multimedia" is used to refer to the concurrent presentation of one or more applications, such as voice, video, data, and image programs. Multimedia networks integrate different types of applications in a same network to provide a basic framework for nodes within the network to exchange different types of information. These networks also support multimedia applications which require the integration of some combination of text, image, voice, and video programs in a single application. Examples of integrated multimedia applications include teleconferencing, entertainment video, medical imaging, advertising, and education.
Multimedia applications differ from uni-media applications in varied manners. Typically, multimedia applications are used within a group involving more than two users. Moreover, communication within the group is symmetric. Stated another way, any member of the group can send information to any other group member in multimedia applications. Additionally, in multimedia applications, there are requirements for synchronization among the various information types, which can range from course synchronization to fine synchronization. Course synchronization includes sequencing the transmission of various objects (i.e., an image followed by a voice followed by image and so on). Moreover, the more precise fine synchronization includes synchronization of a voice to a speaker's lip motion, among others.
In multimedia networks, real-time applications require local service clocks to be synchronized to one another. Clock synchronization has been studied in detail for point-to-point connections. Basically, two techniques have been developed for clock synchronization in such connections. These two techniques include a buffer filling technique and a time stamp technique. However, while the problem of clock synchronization has been studied for point-to-point connections, this issue has not been satisfactorily addressed in multipoint-multipoint connections, in which more than two users are involved in exchanging information. In multipoint-multipoint connections, an asynchronous local service clock is typically found at each of the end nodes within a network. With such asynchronous local service clocks at each end node, clock frequencies at different nodes in the communication network may not be the same, unless mechanisms are implemented to achieve this similarity. Such similarity is generally required as unsynchronized clocks cause the receiver to expect data at a faster or slower rate than the data is actually being transmitted at. For example, in FIG. 1-A, receiver and sender clocks have the same frequencies. Therefore, packets delayed by the network beyond acceptable levels, marked "n," are dropped at a specified time. In contrast, in FIG. 1-B, a receiving clock is faster than a sending clock. In this situation, packets which would otherwise be acceptable, are dropped as the receiver expects the packets (marked "f") at a faster rate than they arrive. Lastly, when the receiving clock is slower than the sending clock, as in FIG. 1-C, too much time is allowed at the receiver. Consequently, there is an increased probability that the receiver buffer will become full when the receiver has the slower clock. Eventually, when the receiver buffer becomes full, there is a quality degradation due to lost packets at the end node.
Similar issues were encountered with point-to-point connections in a communication network. A buffer filling technique has been used with point-to-point connections to ensure that sending and receiving nodes of a network communicate at substantially the same clock speed. In the buffer filling technique, a local clock is reconstructed by measuring a filling level of a packet buffer within the receiving node. The data values are delivered from the buffer to a terminal at a rate determined by a local clock, generated by a phase locked loop (PLL). If the buffer tends to overflow, then the PLL provides a local clock at a higher frequency. Conversely, when the buffer tends to underflow, the PLL is able to provide the local clock signal at a slower frequency. To assure that the buffer does not underflow when a first set of data packets arrive, the buffer must be filled to a certain level before the receiver node may start operating and receive data. It should be noted that the buffer filling technique described above is sensitive to jitter and, therefore, a fluctuation in the filling level of the buffer may result causing constant fluctuation in a clock generated by the PLL. Thus, when buffer filling techniques are utilized, it may be necessary to filter the jitter on the signals provided to the PLL to ensure that a correct output is generated.
A time stamp method is also utilized to reconstruct a local clock in some point-to-point communication systems. The time stamp methodology utilizes special data packets which include clock information pertaining to THE source of the transmitted signal. This methodology is described in greater detail in "Integrated Services Digital Network (ISDN) Overall Network Aspects and Functions, B-ISDN ATM Adapter Layer (AAL) Specification," ITU-T Recommendation I.363, published by International Telecommunication Union (ITU-T) Telecommunication Standardization Sector of ITU in March 1993, which is hereby incorporated by reference herein. As set forth in Section 2.5.2.2.1 of that Recommendation, a synchronous residual time stamp (SRTS) method is disclosed. The SRTS method uses the residual time stamp (RTS) to measure and convey information about a frequency difference between the common reference clock derived from the network and a service clock. The same derived network clock is assumed to be available at both the transmitter and the receiver. If the common network reference clock is unavailable (e.g., when working between different networks which are not synchronized), then the asynchronous clock recovery method will be in a special mode of operation.
The basic operation of the SRTS method, as described within the ITU-T recommendation I.363, will be described below. In FIG. 2, the following notations are utilized.
fs--service clock frequency;
fn--network clock frequency (e.g. 155.52 MHz);
fnx--derived network clock frequency, fnx=fn/x, where x is an integer to be defined later;
N--period of RTS and cycles of the service clock of frequency fs;
T--period of the RTS in seconds;
M(Mnom,
Mmax, Mmin)--number of fnx cycles within a (nominal, maximum, minimum) RTS period; and
Mq--largest integer smaller than or equal to M.
During operation, in a fixed duration T measured by N service clock cycles, a number of derived network clock cycles, Mq, is obtained at a transmitter. If Mq is transmitted to the receiver, the service clock of the source can be reconstructed by the receiver since it has the necessary information: fnx, Mq and N. It should be noted that Mq is actually made up of a nominal part and a residual part. The nominal part Mnom corresponds to a nominal number of fnx cycles in T seconds and is fixed for a service. A residual part of Mq conveys frequency difference information as well as an effect of the quantization, and thus may vary. Since a nominal part of Mq is a constant, it may be assumed that the nominal part of Mq is available at a receiver. Therefore, only a residual part of Mq is transmitted to a receiver.
A minimum size of the RTS required to unambiguously represent a residual portion of Mq is a function of N, the ratio of fnx/fs, and the service clock tolerance, .+-..epsilon.. Let "y" be a difference between Mnom and the maximum or minimum value of N (denoted as Mmax, Mmin). The difference, y, is given by: EQU y=N*fnx/fs*.epsilon.. (1)
In order that Mq can be unambiguously identified, the following conditions must be satisfied: EQU 2(p-1)&gt;[y] (2)
where [y] denotes a smallest integer larger than or equal to y, and p is a number of bits representing the RTS.
The RTS of p-bits may be generated by the circuitry of FIG. 3. The network clock frequency, fn, is divided by the preselected integer, x, to form the derived network clock frequency, fnx. The derived network clock frequency is used to clock p-bit counter Ct. The output of counter Ct is provided to a latch. The latch is clocked by the output of counter A which divides the service clock frequency, fs, by N.
In ITU-T recommendation I.363, a 4-bit RTS value is transmitted in a serial bit stream provided by a convergence sublayer I (CSI) bit in successive data transmission headers. A modulo-8 sequence count provides a frame structure over the cell stream. Out of eight consecutive cells, four of the cells (i.e. cells with odd sequence counts) carry the CSI bit, thereby providing a four-bit time stamp over eight cells.
While both the buffer filling and time stamp methodology work well in point-to-point connections, these two methods are not directly applicable to multimedia applications which require multipoint-multipoint connections. When more than two users are involved in a communication operation, one prior art approach has been to designate a signal node as a master and distribute its local service clock to all others is the group. While this methodology is typically used in multipoint-multipoint connections, several limitations exist. In particular, when the master decides to leave the group, control must be transferred from the master to another node. Furthermore, failures at the node at which the master resides will cause significant problems to the service quality before it is realized that there is no clock distribution and control should be transferred to another node. To alleviate such delays, protocols are required to detect these situations and to transfer control to nodes other than the master node.
Additionally, a second approach utilizes a single buffer for the traffic arriving from all nodes when a buffer filling method can be utilized. In this buffer filling methodology, a buffer level fluctuation may result in fluctuations in the clocks generated by each PLL more than that of point-to-point communication scenarios. Such fluctuations may then result in unstable circuits. Alternatively, separate buffers may be used for each connection. In addition to the obvious scalability problems, a fluctuation problem will still result from this third alternative.
Therefore, a need exists for a method for synchronizing local service clocks of nodes involved in multipoint-multipoint communication systems in an efficient and effective manner.